package Jihe;

import java.util.*;
import java.util.function.Function;

//集合的输出(迭代)
public class IteratorDemo {
    public static void main(String[] args) {
          Cat cat1 = new Cat("w","w",2);
          Cat cat2 = new Cat("q","q",3);
          Cat cat3 = new Cat("c","c",4);
          Cat cat4 = new Cat("c","c",4);
//        Set set = new HashSet();
//        set.add(cat1);
//        set.add(cat2);
//        set.add(cat3);
//        set.add(cat4);
//        iterator1(set);
//        List list = new ArrayList();
//        list.add(cat1);
//        list.add(cat2);
//        list.add(cat3);
//        list.add(cat4);
//        iterator2(list);

//        Vector<Cat> vs = new Vector<Cat>();
//        vs.add(cat1);
//        vs.add(cat2);
//        vs.add(cat3);
//        vs.add(cat4);
//        Enumeration(vs);

//        List list = new ArrayList();
//        list.add(cat1);
//        list.add(cat2);
//        list.add(cat3);
//        list.add(cat4);
//        ListIterator(list);

//          foreach();


    }
    /*
     *
     *
     */



    /*
    * 利用foreach和iterator进行遍历
    * 利用Enumeration 配合 Vector集合 进行遍历
    * ListIterator 可以反向迭代
    * Enumeration 和 ListIterator 迭代用的较少
    * */
    //foreach（1.5后新加入）
    private static void iterator1(Collection<Cat> c){
        for(Cat cat:c){
            System.out.println(cat);
        }
    }
    //iterator（1.5之前统一迭代方式）
    private static void iterator2(Collection<Cat>c){
        Iterator iterator = c.iterator();
        while(iterator.hasNext())
        {
            System.out.println(iterator.next());
        }
    }
    //利用Enumerator 配合 Vector集合 进行遍历， 用的少
    private static void Enumeration(Vector<Cat>vs){

        Enumeration<Cat> enumeration = vs.elements();
        while (enumeration.hasMoreElements()) System.out.println(enumeration.nextElement());
    }
    //利用 ListIterator 可以进行反向迭代 , 用的少
    private static void ListIterator(List<Cat> c){
        ListIterator listIterator = c.listIterator();
        while (listIterator.hasNext()){
            System.out.println(listIterator.next());
        }
    }

}
